<?php
class DashboardsController extends AppController {
	var $components = array('Cookie','Idioma');
	var $name = 'Dashboards';
	var $uses = array('Person','PeopleProblem','PeopleProduct','Evolution','PeopleSign','Sign',
		'PeoplePractice','Practice','Result','PeopleVademecum','InsurancesPerson','Insurance','Turn','Product','Agenda','User');

	
    function beforeFilter () {
        parent::beforeFilter();

		// Aplico el Layout segun la Vista o si es AJAX
		if ($this->RequestHandler->isAjax()) {
			$this->layout = 'ajax';
		}else{
			// Cambio la Vista por la del Rol
			$this->layout = strtolower($this->Session->read('VistaActual'));
		}

		// Averiguo si hay notificaciones para mostrar
		$nombre_controlador = $this->name;
		$nombre_metodo = $this->action ;
//		$this->requestAction('/notifications/getNotifications/'.$nombre_controlador);


    }

	function index($fecha_inicio = null, $fecha_fin = 0, $agenda_id=0) {
		
		$client_id      = $this->Session->read('ClientesUsuarioLogueado.id');
		$user_id        = $this->Auth->user('id');
		$profesional_id = $this->Session->read('ProfesionalSeleccionado');
		$sucursal_id    = $this->Session->read('Sucursal.id');
 
		$rol_actual = strtolower($this->Session->read('VistaActual'));

		$Agendas = $this->Agenda->ObtenerAgendas($sucursal_id,$rol_actual,$profesional_id);

		$this->set('Agendas', $Agendas);
		$this->set('client_id', $client_id);
		$this->set('agenda_id', $agenda_id);
		$this->set('profesional_id', $profesional_id);

 
		$this->Idioma->_idioma();
		

		if(!$fecha_inicio){
			$fecha_inicio = date("Y-m-d");
			$fecha_inicio = date("Y-m-d",mktime(0,0,0,date("m"),date("d"),date("Y")));
		}

		if($fecha_fin>0){
			list($anio_fin,$mes_fin,$dia_fin) = explode('-',$fecha_fin);
			$fecha_fin = date("Y-m-d",mktime(23,59,59,$mes_fin,$dia_fin+1,$anio_fin));
		} else {
			list($anio_fin,$mes_fin,$dia_fin) = explode('-',$fecha_inicio);
			$fecha_fin = date("Y-m-d",mktime(23,59,59,$mes_fin,$dia_fin+1,$anio_fin));
		}

		$this->set('fecha_inicio',$fecha_inicio);
		$this->set('fecha_fin',$fecha_fin);


		// Array de datos para obtener los turnos
		$DataTurn['client_id']       = $client_id;
		$DataTurn['user_id']         = $user_id;
		$DataTurn['profesional_id']  = $profesional_id;
		$DataTurn['sucursal_id']     = $sucursal_id;
		$DataTurn['rol_actual']      = $rol_actual;
		$DataTurn['agenda_id']       = $agenda_id;
		$DataTurn['fecha_inicio']    = $fecha_inicio;
		$DataTurn['fecha_fin']       = $fecha_fin;
		$DataTurn['client_timezone'] = $_SESSION['Client']['timezone'];

		$jDataTurn = json_encode($DataTurn);

		
		switch($rol_actual){
/*			
			case 'asistente':

				$this->set('fecha_inicio',$fecha_inicio);
				$this->set('fecha_fin',$fecha_fin);
				
				$registro_gral = $this->requestAction("/turns/ObtenerTurnos/$fecha_inicio/$fecha_fin/0/$agenda_id" );

				if($registro_gral){
					foreach($registro_gral as $clave=>$valor){
						if( $valor['Turn']['producto_id']>0 ){
							$product = $this->Product->read(null,$valor['Turn']['producto_id']);
							$nombre_producto = $product['Product']['name'];
							$registro_gral[$clave]['Turn']['nombre_producto'] = $nombre_producto;
						} else {
							$registro_gral[$clave]['Turn']['nombre_producto'] = '';
						}
						
						if($valor['Turn']['person_id']>0){
							//----------------------------------------------------
							// Se le asigno el valor de la consulta??
							//----------------------------------------------------
							$fecha     = substr($valor['Turn']['fecha'],0,10);
							$doctor_id = $valor['Turn']['doctor_id'];
							$person_id = $valor['Turn']['person_id'];
							$sql = "select id 
									from people_products
									where person_id='$person_id' and client_id='".$this->Session->read('ClientesUsuarioLogueado.id')."' and created like '$fecha%' and staterecord_id='1'
									order by id DESC LIMIT 1";
									
							$pago = $this->PeopleProduct->query($sql);
							if(count($pago)>0){
								$registro_gral[$clave]['Turn']['valor_consulta']=1;
							} else {
								$registro_gral[$clave]['Turn']['valor_consulta']=0;
							}
							
						} else {
							$registro_gral[$clave]['Turn']['valor_consulta']=0;
						}
					}
				}
				
				//pr($registro_gral);
				
				$this->set('registro_gral',$registro_gral );
				$this->set('doctores',$this->requestAction("/users/obtenerListadoDoctores/$client_id") );

				// Reenvio los datos a la Vista de la Secretaria
				$this->render('secretaria');

				break;
*/
			case 'secretaria':
				//-----------------------------------------------------------------------------------
				//                                            Arma turnos para el panel de secretaria
				//-----------------------------------------------------------------------------------
				$this->set('fecha_inicio',$fecha_inicio);
				$this->set('fecha_fin',$fecha_fin);
				$registro_gral = $this->requestAction("/turns/ObtenerTurnos/$fecha_inicio/$fecha_fin/0/$agenda_id" );

				if($registro_gral){
					foreach($registro_gral as $clave=>$valor){
						if( $valor['Turn']['producto_id']>0 ){
							$product = $this->Product->read(null,$valor['Turn']['producto_id']);
							$nombre_producto = $product['Product']['name'];
							$registro_gral[$clave]['Turn']['nombre_producto'] = $nombre_producto;
						} else {
							$registro_gral[$clave]['Turn']['nombre_producto'] = '';
						}
						
						if($valor['Turn']['person_id']>0){
							//----------------------------------------------------
							// Se le asigno el valor de la consulta??
							//----------------------------------------------------
							$fecha     = substr($valor['Turn']['fecha'],0,10);
							$doctor_id = $valor['Turn']['doctor_id'];
							$person_id = $valor['Turn']['person_id'];
							$sql = "select id 
									from people_products
									where person_id='$person_id' and client_id='".$this->Session->read('ClientesUsuarioLogueado.id')."' and created like '$fecha%' and staterecord_id='1'
									order by id DESC LIMIT 1";
							$pago = $this->PeopleProduct->query($sql);
							if(count($pago)>0){
								$registro_gral[$clave]['Turn']['valor_consulta']=1;
							} else {
								$registro_gral[$clave]['Turn']['valor_consulta']=0;
							}
							
						} else {
							$registro_gral[$clave]['Turn']['valor_consulta']=0;
						}




					}
				}
				
				//pr($registro_gral);
				
				
				$this->set('registro_gral',$registro_gral );
				// $this->set('doctores',$this->requestAction("/users/obtenerListadoDoctores/$client_id") );

				// Reenvio los datos a la Vista de la Secretaria
				$this->render('secretaria');
				

				break;
/*				
			case 'administrador':

				$this->set('fecha_inicio',$fecha_inicio);
				$this->set('fecha_fin',$fecha_fin);
				$registro_gral = $this->requestAction("/turns/ObtenerTurnos/$fecha_inicio/$fecha_fin/0/$agenda_id" );

				if($registro_gral){
					foreach($registro_gral as $clave=>$valor){
						if( $valor['Turn']['producto_id']>0 ){
							$product = $this->Product->read(null,$valor['Turn']['producto_id']);
							$nombre_producto = $product['Product']['name'];
							$registro_gral[$clave]['Turn']['nombre_producto'] = $nombre_producto;
						} else {
							$registro_gral[$clave]['Turn']['nombre_producto'] = '';
						}
						
						if($valor['Turn']['person_id']>0){
							//----------------------------------------------------
							// Se le asigno el valor de la consulta??
							//----------------------------------------------------
							$fecha     = substr($valor['Turn']['fecha'],0,10);
							$doctor_id = $valor['Turn']['doctor_id'];
							$person_id = $valor['Turn']['person_id'];
							$sql = "select id 
									from people_products
									where person_id='$person_id' and client_id='".$this->Session->read('ClientesUsuarioLogueado.id')."' and created like '$fecha%' and staterecord_id='1'
									order by id DESC LIMIT 1";
							$pago = $this->PeopleProduct->query($sql);
							if(count($pago)>0){
								$registro_gral[$clave]['Turn']['valor_consulta']=1;
							} else {
								$registro_gral[$clave]['Turn']['valor_consulta']=0;
							}
							
						} else {
							$registro_gral[$clave]['Turn']['valor_consulta']=0;
						}
					}
				}
				
				//pr($registro_gral);
				
				
				$this->set('registro_gral',$registro_gral );
				$this->set('doctores',$this->requestAction("/users/obtenerListadoDoctores/$client_id") );

				// Reenvio los datos a la Vista de la Secretaria
				$this->render('secretaria');

				break;
*/				
			default: // Profesional

				//------------ Obtengo los Turnos
				$registro_gral = $this->Turn->ObtenerTurnos($jDataTurn);
				//pr($registro_gral);
				$this->set('registro_gral',$registro_gral );

				break;
		}


	}
}
?>